Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Programming a robot to perform a task is traditionally done by highly trained professionals in the computer science research or automation field. The main paradigms for describing a given task involve description of the position and orientation of robot peripherals, and the forces acting on or exerted by the robot. Usually, a technician integrates these peripherals to create a custom robotic system to solve a specific task. This integration effort includes mechanically installing robot peripherals into the robotic system, wiring these devices together, describing their configuration within an automation controller, and then calibrating a geometric location of these devices relative to each other and to the world.
This integration process can be time consuming and expensive. If it is desired to modify the functionality of the robotic system, much of this integration effort is repeated. In addition, robotic systems often may not be able to be reconfigured since the systems are usually customized for a specific task or requirement. A high cost of modification may also make it undesirable to swap out older or damaged devices.